Computer apparatuses use many kinds of diagnostic tests that diagnose defective portions of each built-in device. As an example of the computer apparatus, a diagnostic tool is disclosed that runs a memory diagnostic test to diagnose if a memory function in a built-in memory properly works, e.g., if predetermined data can be normally read from and written into the memory. See, for example, Japanese Laid-open Patent Publication No. H6-4413.
In the simplest diagnostic test, a memory diagnostic program is stored beforehand in one portion of a basic input/output system (BIOS) of the computer apparatus. When the computer apparatus starts up, the memory diagnostic program operates together with the BIOS.
However, the BIOS usually has a very limited storage capacity, in which another program such as an initial program loader (IPL) is stored. Therefore, the BIOS can contain only a simple memory diagnostic program. Thus, in conventional computer apparatuses, a memory diagnostic program for performing complicated memory checking is generally loaded into a main memory such as a random access memory (RAM) by an operating system (OS) and is executed, after the BIOS has operated and the OS has started up.
Incidentally, conventional computers properly function, only if no fault is found in all addresses in the main memory. However, currently, even when some faulty areas are discovered in the main memory by checking the main memory beforehand, a new type of computer apparatus is expected that can run properly by not using the faulty areas.
To properly run the computer apparatus in spite of the presence of faulty areas in the main memory, the faulty areas need to be detected before the OS starts up.
However, the memory diagnostic program stored in the BIOS cannot perform a memory diagnosis that allows the OS to properly function.
The following technique can be considered in this situation. The complicated memory diagnostic program, which was conventionally processed by the OS, is stored in a memory such as a read-only memory (ROM) other than the BIOS. At the same time, a loading program, which loads the complicated memory diagnostic program in predetermined addresses of the main memory, is stored in the BIOS. This enables the complicated memory diagnostic program to be started up when the computer apparatus boots up.
However, this structure leads to the situation where the memory diagnostic program is loaded into the main memory prior to the memory diagnosis. That is, the memory diagnostic program is loaded into the main memory, while it is unknown whether or not the areas of the main memory, into which the memory diagnostic program is loaded, are faulty. Therefore, there is a possibility that the memory diagnostic program itself cannot be executed.